From 760e57ea9cb9c35cdd08957bd63da2b6dcb42b6d Mon Sep 17 00:00:00 2001 From: Albert Astals Cid Date: Wed, 26 Mar 2025 11:26:32 +0100 Subject: [PATCH] Make sure regex doesn't stack overflow by limiting it Origin: https://gitlab.freedesktop.org/poppler/poppler/-/commit/f54b815672117c250420787c8c006de98e8c7408 Bug-Debian: https://bugs.debian.org/1117046 Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2025-43718 Happens with very long pdfsubver strings when compiled with -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -flto=auto Gbp-Pq: Name Make-sure-regex-doesn-t-stack-overflow-by-limiting-i.patch --- poppler/PDFDoc.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/poppler/PDFDoc.cc b/poppler/PDFDoc.cc index 7294d2c..3bfbeba 100644 --- a/poppler/PDFDoc.cc +++ b/poppler/PDFDoc.cc @@ -479,7 +479,7 @@ static PDFSubtypePart pdfPartFromString(PDFSubtype subtype, const std::string &p static PDFSubtypeConformance pdfConformanceFromString(const std::string &pdfsubver) { - const std::regex regex("PDF/(?:A|X|VT|E|UA)-[[:digit:]]([[:alpha:]]+)"); + const std::regex regex("PDF/(?:A|X|VT|E|UA)-[[:digit:]]([[:alpha:]]{1,3})"); std::smatch match; // match contains the PDF conformance (A, B, G, N, P, PG or U) -- 2.30.2